DOORS version is 9.4. |
Re: Attribute DXL befavior in Baselines That is a known issue and workarounds mostly deal with copying DXL attribute values to an attribute before actually baselining the module. I do not get your description of the new behaviour of attribute DXL, but an attribute DXL should calculate as soon as you show it. If you press F5 or choose refresh DXL attributes they will recalculate. I do not think that behaviour has changed since DOORS 8. Regards, Mathias Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS |
Re: Attribute DXL befavior in Baselines Then fill in x, fill in y, in previous versions of DOORS < 9.2, z would display the sum right away, now is more consistent with the documentation and you would have to select Refresh DXL attribute to show sum, or close/reopen the module. In regards with the main problem, the fact that some DXL attribute can change in a baseline is a big issue and defies the notion of baseline. So if DXL attributes have no container then is a mere Layout. So the solution is to make a companion attribtue that the DXL attribute saves value in when calculating its own. Then its code becomes: if(isBaseline module obj) [ set(obj.attrDXLNAme, probeAttr_(obj, attrDXLName "x")) } else { val = go to master module set(obj.(attrDXLName "x"), val) set(obj.attrDXLName, val) } |
Re: Attribute DXL befavior in Baselines
Yes, it appears they slightly changed the when attr-DXL (and I presume Layouts) changes; I think in v9. I didn't spend much time on it, but suspect that null-Attr-DXL is not recalculated when displayed, it is recalculated the 1st time it is requested after it has been erased.
The second one will cause constant recalculation even in v9; the 1st no longer does.
This just CANNOT be write ..err.. right. Where does target_object get IT'S value? What happens when an object is linked to itself? Perhaps you mean this:
Link l
Buffer buf = create
for l in all(obj->"somelinkmodule") do {
target_object = target l
if (length(buf) > 0) buf += "\n"
buf += some information about target_object
}
obj.attrDXLName = tempStringOf(buf)
delete(buf)
|
Re: Attribute DXL befavior in Baselines You are making it more complicated than it is, the code: set(obj.attrDXLName, target_object.attrDXLName)
I have several DXL attributes, and I wanted to code in such a way that I don't need to rember attribute names. So, for example I have: Severity, Prob 1 and Prob 2 attributes in a master hazard module. Then, I have many more smaller hazards product specific modules which needs not to worry about Severity and Prob 2. But can define their own Prob 1, so Severity and Prob 2 will be those dxl attribtues with the exact same DXL code, and same types respectively. |
Re: Attribute DXL befavior in Baselines as you want to display the information "at the time when the baseline was created, object a had content x and linked object b of another module hat content y" --> have you considered using baseline sets instead of single baselines? These seem to exactly fit your needs -- and you do not need to remember the value of the attrDXL, since you can still recalculate the value. |
Re: Attribute DXL befavior in Baselines ostanescu - Wed Feb 20 15:35:39 EST 2013
I have several DXL attributes, and I wanted to code in such a way that I don't need to rember attribute names. So, for example I have: Severity, Prob 1 and Prob 2 attributes in a master hazard module. Then, I have many more smaller hazards product specific modules which needs not to worry about Severity and Prob 2. But can define their own Prob 1, so Severity and Prob 2 will be those dxl attribtues with the exact same DXL code, and same types respectively. I guess your link loop would also work so long as there was exactly one linked parent "Master" object for each subordinate "Hazard" object and no other relationships use that particular link module. -Louie |
Re: Attribute DXL befavior in Baselines The reason is that you don't know before hand which baseline should be part of the set. For example consider a baseline set of 2 modules. Have the first module make a baseline in the set. Then update second module and make baseline in the set. Then some reviewer find a mistake in the second module, which willneed to be updated. At this point, I am hosed, because I cannot replace the second module baseline in the set. Also I cannot make a new baseline set and add the first module existing baseline. So, the feature needs either or both of these: - allow a previously created baseline to be added to the set - allow replacing a baseline from the set |
Re: Attribute DXL befavior in Baselines ostanescu - Thu Feb 21 09:51:57 EST 2013 |